package org.code.boot.service.common;

import java.util.List;
import org.code.boot.domain.common.ComFavorite;
import org.code.boot.vo.AjaxResult;

/**
 * 通用收藏Service接口
 * 
 * @author ruoyi
 * @date 2023-08-27
 */
public interface IComFavoriteService
{
    /**
     * 查询通用收藏
     * 
     * @param favoriteId 通用收藏主键
     * @return 通用收藏
     */
    public ComFavorite selectBizFavoriteByFavoriteId(Long favoriteId);

    /**
     * 查询通用收藏列表
     * 
     * @param comFavorite 通用收藏
     * @return 通用收藏集合
     */
    public List<ComFavorite> selectBizFavoriteList(ComFavorite comFavorite);

    /**
     * 新增通用收藏
     * 
     * @param comFavorite 通用收藏
     * @return 结果
     */
    public int insertBizFavorite(ComFavorite comFavorite);

    /**
     * 修改通用收藏
     * 
     * @param comFavorite 通用收藏
     * @return 结果
     */
    public int updateBizFavorite(ComFavorite comFavorite);

    /**
     * 批量删除通用收藏
     * 
     * @param favoriteIds 需要删除的通用收藏主键集合
     * @return 结果
     */
    public int deleteBizFavoriteByFavoriteIds(Long[] favoriteIds);

    /**
     * 删除通用收藏信息
     * 
     * @param favoriteId 通用收藏主键
     * @return 结果
     */
    public int deleteBizFavoriteByFavoriteId(Long favoriteId);

    /**
     * 收藏/取消收藏
     * 
     * @param businessType 业务类型
     * @param businessId 业务ID
     * @param folderName 收藏夹名称
     * @return 结果
     */
    public AjaxResult toggleFavorite(String businessType, Long businessId, String folderName);

    /**
     * 获取收藏数和收藏状态
     * 
     * @param businessType 业务类型
     * @param businessId 业务ID
     * @return 结果
     */
    public AjaxResult getFavoriteInfo(String businessType, Long businessId);
}